package com.fiveGroup.pojo.vo;


import com.fiveGroup.pojo.Address;
import com.fiveGroup.pojo.Product;
import com.fiveGroup.pojo.ProductImage;
import com.fiveGroup.pojo.User;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.List;

@EqualsAndHashCode(callSuper = true)
@Data
public class ProductVo extends Product {

    // 一个商品有很多张图片
    @NotNull(message = "商品图片不能为空")
    @Size(min = 1, max = 10, message = "至少需要1张商品图片，最多10张")
    private List<ProductImage> images;

    // 一个商品多个评论
    private List<ProductReviewVo> reviews;

    // 商品被多个人收藏
    //private List<UserFavoriteProduct> favoriteProducts;

    // 商品被收藏次数
    private Integer favoriteCount;

    // 新增：卖家ID（冗余字段，便于前端直接获取）
    private Long sellerId;

    // 新增：完整的卖家对象
    private User seller;

    // 新增地址对象
    private List<Address> address;

    // 6. 新增：商品分类名称（解决当前缺失问题，与 ProductMapper.xml 中的 category_name 映射）
    private String categoryName;

}
